# list 列表：可变长度
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list2 = [x * 2 for x in list1 if x % 2 == 0] # 列表推导式
list2.append(100)
print(list2)

#python没有slice，但又类似概念
print(list2[0:5:2]) # 包含0，不包含5，步长(间隔）为2。三个参数可以省略


# tuple 拓扑 长度固定
tuple1 = 2,4
tuple2 = (2,4)
print(type(tuple1)) # tuple
print(tuple1)

# generator 生成器 只能往后取，不能往前取
list3 = (x * 2 for x in list1 if x % 2 == 0) #  不是tuple，是generator
print(next(list3))

# 循环集合
for i in list3: #不包含4，上面next已经取走了4
    print(i) 


# map 映射 
map1 = dict()
map1['name'] = 'zhangsan'
map1['age'] = 18
for k,v in map1.items():
    print(k,v)
